#include "app_common.h"

long app_common_getcurtime_ms()
{
    /** get currunt time */
    struct timeval tv;
    gettimeofday(&tv, NULL);
    return (tv.tv_sec * 1000 + tv.tv_usec / 1000);
}

char *app_common_bytes2hexstr(char *data_buff, int len)
{
    char *hexstr = (char *)malloc(len * 2 + 1);
    if (hexstr == NULL)
    {
        return NULL;
    }
    for (int i = 0; i < len; i++)
    {
        sprintf(hexstr + i * 2, "%02x", (unsigned char)data_buff[i]);
    }
    hexstr[len * 2] = '\0';
    return hexstr;
}
/**
 * //把16进制的字符串转换成字节数组
 * 传入16进制的字符串（数据） ，传入字节数组（空、已有空间）
 * 返回字节数组的长度
 */

int app_common_hexstr2bytes(char *hexstr, char *data_buff, int buff_len)
{
    // 计算hexstr的长度
    int len = strlen(hexstr) / 2;
    // 如果hexstr的长度大于buff_len，则返回-1
    if (len > buff_len)
    {
        return -1;
    }
    // 遍历hexstr，将每两个字符转换为一个字节存入data_buff
    for (int i = 0; i < strlen(hexstr); i += 2)
    {
        sscanf(hexstr + i * 2, "%2hhx", &data_buff[i / 2]);
    }

    // 返回转换后的字节数
    return len;
}
